前言

google翻译没有现成的接口, 而大部分别人写的调用google接口都是用python, 于是我把python的改成js.

分析

google翻译接口是get请求, 对cookie没什么要求. 唯一的难点就是tkk(token key)和tk(token). 谷歌会给我们一个tkk, 我们需要用tkk和需要翻译的字符来调用google的解密函数获取tk, 再携带该tk去请求.

整个过程是非常清晰简单的, 而且网上大神已经把解密函数贴出来了, 我们只需要拿来用就OK.

实现

  1. 获取tkk

    async updateTkk(){ const url = 'https://translate.google.cn' const res = await axios({ method:'GET', url, headers:GoogleTranslater.headers }) const re = /tkk:'([0-9]+.[0-9]+)'/ const reRes = re.exec(res['data']) if(!reRes){ throw new Error('tkk更新失败!') } this.tkk = reRes[1] return reRes[1] }

  2. 构建请求url

    _constructUrl(){ let url = GoogleTranslater.baseUrl+ '?' for(let key in GoogleTranslater.queryStrObj){ if(typeof(GoogleTranslater.queryStrObj[key]) === 'object'){ url = url + "dt=" + GoogleTranslater.queryStrObj[key].join('&dt=') + "&" continue } url = url + ${key}=${GoogleTranslater.queryStrObj[key]}& } return url }

  3. 调用解密函数根据tkk和翻译字符获取tk

  4. 构建请求,调用翻译api接口

    async traslate(q,langTo=langToEumn.ENGLISH){ // await this.updateTkk() GoogleTranslater.queryStrObj['q'] = encodeURI(q) GoogleTranslater.queryStrObj['tk'] = getTk(q,this.tkk) GoogleTranslater.queryStrObj['tl'] = langTo const url = this._constructUrl() const res = await axios({ method:'GET', headers:GoogleTranslater.headers, url, }) let translation = '' for(let sentence of res['data'][0]){ if(!sentence[0]){ continue } translation = translation + sentence[0] } return translation }

结尾

根据以上几个步骤就能完成google翻译接口的调用, 完整代码请点击我下载

THE END
推荐文章
  • 如何通过vscode把\r\n换行结尾的文件转化成\n换行结尾

  • 查看ubuntu(linux)内网IP地址

  • OneDrive损坏后重装

  • 解决wordpress中自定义类型或page类型的分页查询404问题

  • 小程序中使用async/await

  • youtube的RSS订阅格式

  • 微信公众号开发(4)-微信公众号回复模板

  • 黄帝内经-第23篇-宣明五气篇(1)

评论 共0条
开启精彩搜索

热门搜索

暂无

历史搜索

用户名/邮箱/手机号
密码
用户名
密码
重复密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
注册
找回密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

0字

0字

2024年10月

0字

新增

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

0字

新增

0字

0字

0字

0字

新增

0字

0字